{
  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
  inputs.gtkflow.url = "git+https://notabug.org/grindhold/libgtkflow.git";

  outputs = { self, nixpkgs, gtkflow }: 
  let
    system = "x86_64-linux";
  in {
    packages.x86_64-linux.default = 
    with import nixpkgs {inherit system;};
    stdenv.mkDerivation rec {
      pname = "effector";
      version = "0.2";
      src = ./.;
      nativeBuildInputs = [
        vala
        meson
        ninja
        pkg-config
        wrapGAppsHook
      ];
      buildInputs = [
        glib
        gtk3
        libgflow
        libgtkflow3
        json-glib.dev
        gegl
      ];
      meta = with lib; {
        description = "GEGL filter chain editor";
        homepage = "https://notabug.org/grindhold/effector";
        maintainers = with maintainers; [ grindhold ];
        license = licenses.gpl3Plus;
        platforms = platforms.unix;
      };
    };
    devShell.x86_64-linux =
      with import nixpkgs {inherit system;};
      mkShell {
        name = "flohmarkt devshell";
        buildInputs = [
          vala
          meson
          ninja
          pkg-config
          wrapGAppsHook
          glib
          gtk3
          gtkflow.packages.x86_64-linux.libgflow
          gtkflow.packages.x86_64-linux.libgtkflow3
          gegl
        ];
    };
  };
}
